#include "linklist.h"
#include <stdlib.h>
// 初始化
linklist init_list(void)
{
    // 分配头结点
    linklist head = malloc(sizeof(listnode));
    if(head != NULL)
    {
        head->next = NULL;
    }
    return head;
}


// 尾插法
void list_add_tail(linklist head, linklist new)
{
    // ① 找到尾指针
    linklist tail;
    for(tail=head; tail->next!=NULL; tail=tail->next);

    // ② 更新尾节点
    tail->next = new;
}
linklist new_node(const student *someone)// 产生新节点
{
    linklist new=malloc(sizeof(listnode));
    if(new==NULL)
        return NULL;
    new->data=*someone;
    new->next=NULL;
    return new;
}
void list_for_each(linklist head)
{
    linklist p=head->next;
    while(p!=NULL)
    {
        printf("姓名：%s\t",p->data.name);
        printf("年龄：%d\t",p->data.age);
        printf("成绩：%f\n",p->data.score);
        p=p->next;
    }
}
void destroy(linklist head)
{
    linklist p;
    linklist q;
    for(p=head->next;p!=NULL;p=q)
    {
        q=p->next;
        free(p);
    }
    free(head);
}